package com.aqie.arithmetic.sort;

/**
 * 选择排序
 * 找到数组中最小元素 和第一个元素交换
 */
public class SelectSort extends SortTest{
    public SelectSort() {
    }

    public void sort(Comparable[] a) {
        int N = a.length;
        // a[i] 和 a[i+1..N] 中最小元素交换
        for (int i = 0; i < N ; i++){
            int min = i;
            for (int j = i + 1; j < N; j++){
                if (less(a[j], a[min])) min = j;
            }
            exch(a, i, min);
        }
    }

    public static void main(String[] args) {
       new SelectSort().process(5);
    }
}
